Delivering data to a wireless station

ABSTRACT

Disclosed are methods for delivering data ( 212 ) to a wireless station ( 102 ). An access point ( 104 ), or any other suitable device or system, receives a plurality of association requests ( 204 ) from a plurality of wireless stations ( 102 ) and transmits a different association identifier ( 208 ) to each of the plurality of wireless stations ( 102 ). The access point ( 104 ) buffers data ( 212 ) for a subset of the wireless stations ( 102 ). If the number of wireless stations ( 102 ) with buffered data ( 212 ) at the access point ( 104 ) is less than a threshold, then the access point ( 104 ) transmits a list of association identifiers indicating that buffered data ( 212 ) are held for each wireless station ( 102 ) identified by the list. If the number of wireless stations ( 102 ) with buffered data ( 212 ) at the access point ( 104 ) is not less than the threshold, then the access point ( 104 ) transmits data indicative of a range of association identifiers indicating that buffered data ( 212 ) are held for at least one wireless station ( 102 ) identified by the range.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional PatentApplication 61/731,566, filed on Nov. 30, 2012, which is incorporatedherein by reference in its entirety.

TECHNICAL FIELD

The present disclosure is related generally to wireless signals and,more particularly, to delivering data to a wireless station.

BACKGROUND

Wireless sensors are used in a variety of applications such as readinggas meters, monitoring temperatures, etc. These wireless sensors areoften placed in locations where they cannot be plugged in to a wiredpower source and therefore must rely on battery power for long periodsof time. To conserve battery power, these devices typically go into alow-power mode between measurements and communications.

Often, these wireless sensors communicate with an application server viaan access point (e.g., a Wi-Fi router). An access point is a device thatallows wireless devices, such as wireless sensors, to connect to a wirednetwork, such as the Internet. Typically, each time the applicationserver sends data to a wireless sensor, the data are first buffered bythe associated access point until the wireless device comes out oflow-power mode.

When a wireless station comes out of low-power mode, the access pointlets the wireless station know that the access point has buffered datafor that wireless station. Typically, the access point does this bybroadcasting a unique identifier associated with each such wirelessstation. However, if large number of wireless devices (e.g., thousandsof sensors deployed in a building) require frequent updates, the list ofunique identifiers is long. As a result, each wireless device may needto stay awake for extended periods of time, thereby reducing batterylife.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

While the appended claims set forth the features of the presenttechniques with particularity, these techniques, together with theirobjects and advantages, may be best understood from the followingdetailed description taken in conjunction with the accompanying drawingsof which:

FIG. 1 is a block diagram of an example wireless network communicationsystem;

FIG. 2 is a block diagram of portions of an example access point;

FIG. 3 is a block diagram of portions of an example wireless station;

FIG. 4 is a block diagram of an example computing device;

FIG. 5 is a flowchart of an example process for delivering data to awireless station;

FIGS. 6 and 7 together form a flowchart of another example process fordelivering data to a wireless station;

FIG. 8 is a flowchart of an example process for receiving data at awireless station; and

FIG. 9 is a flowchart of another example process for receiving data at awireless station.

DETAILED DESCRIPTION

Turning to the drawings wherein like reference numerals refer to likeelements, techniques of the present disclosure are illustrated as beingimplemented in a suitable environment. The following description isbased on embodiments of the claims and should not be taken as limitingthe claims with regard to alternative embodiments that are notexplicitly described herein.

Briefly, in a specific embodiment, a Wi-Fi router receives a pluralityof connection requests from a plurality of gas or electric utilitymeters. In response, the Wi-Fi router transmits a unique identifier toeach of the meters. Because the wireless meters are typically batterypowered and cycling in and out of a sleep mode, the Wi-Fi router buffersdata coming from a utility company for the wireless meters (e.g., afirmware update). If the number of meters with buffered data at theWi-Fi router is relatively low, then the Wi-Fi router transmits anexplicit list of meter identifiers indicating that buffered data areheld for each meter identified by the list. However, if the number ofmeters with buffered data at the Wi-Fi router is relatively high, thenthe Wi-Fi router transmits data indicative of a range of meteridentifiers indicating that buffered data may be held for each meteridentified by the range. By varying the addressing scheme used based onthe number of meters that have buffered data waiting at the Wi-Firouter, overall battery life of the collection of meters is conserved.

More generally, methods and apparatus for delivering data to a wirelessstation are disclosed. In an embodiment, an access point, or any othersuitable device or system, receives a plurality of association requestsfrom a plurality of wireless stations and transmits a differentassociation identifier to each of the plurality of wireless stations.Because the wireless stations are typically battery powered and cyclingin and out of a sleep mode, the access point buffers data coming fromone or more application servers for the wireless stations. If the numberof wireless stations with buffered data at the access point is less thana threshold, then the access point transmits an explicit list ofassociation identifiers indicating that buffered data are held for eachwireless station identified by the list. However, if the number ofwireless stations with buffered data at the access point is not lessthan the threshold, then the access point transmits data indicative of arange of association identifiers indicating that buffered data may beheld for each wireless station identified by the range.

Among other advantages, transmitting a range of association identifierswhen the number of wireless stations with buffered data at the accesspoint is large allows the wake-up message to be short, thereby reducingthe number of signaling intervals needed to notify a large population ofwireless stations that buffered data are held by the access point.Conversely, transmitting an explicit list of association identifierswhen the number of wireless stations with buffered data is shortmaximizes the number of wireless stations from amongst a largepopulation of wireless stations that may be notified during a singlesignaling attempt, thereby avoiding notification delays occurring whensparse bitmaps are sent in different signaling intervals to wake up abatch of wireless stations with dissimilar low-power associationidentifiers and dissimilar wake-up periods.

Another improvement arises when the stations can request, via askip-rate value in the association request, a degree of sleeping thatthe station is to utilize. The access point can then schedule thestation to the requested skip-rate value or an alternate value inconjunction with an offset value to allow the station to determine whichdata delivery periods the station should look for an address of thestation to be presented in the address list schemes presented herein. Tosynchronize the signal periods, the access point transmits a skip-ratecount with every data-delivery beacon. Stations can then determine theirnext period of delivery by taking the broadcast skip-rate counter valueand performing a modulo operation with the assigned skip rate andcomparing the remainder with the assigned offset value. This permits theaccess point to balance the station delivery periods over a number ofsequential delivery periods while permitting to the stations extendedsleep intervals.

In one example, a controller is structured to transmit pollinginformation to indicate that each wireless station identified by thelist should poll for the buffered data. In one example, the controlleris structured to transmit schedule information indicating that eachwireless station identified by the range should wake up at a scheduledwake-up time to begin receiving an associated portion of the buffereddata. In one example, the scheduled wake-up time is responsive to adelivery interval. In one example, the controller is structured totransmit a skip-rate counter for each delivery beacon. Based on thevalue of this skip-rate counter, the controller is able to consider forinclusion those stations that have computationally correct skip rate andoffset values that have buffered data availability and a synchronizationpoint associated with at least one of the plurality of wirelessstations. For example, a skip-rate counter of 67 indicates that data forstations with a skip rate of 8 and offset 3 are included in the deliveryperiod. In that same period, devices with buffered data with a skip rateof 12 and an offset of 7 are similarly included. In one example, thecontroller is structured to transmit a skip-rate counter to be used bythe wireless station by matching the offset value and the remainder ofthe skip-rate counter modulo the skip rate. In one example, reportingbuffered data availability is limited to wireless stations that have askip rate and an offset value aligned with a current cycle value. In oneexample, the controller is structured to receive a request from awireless station to modify the skip rate, modify the offset value, andtransmit the modified skip rate and the modified offset value to thewireless station. In one example, the controller is structured todetermine that the number of wireless stations is greater than thethreshold, and, in response, cause the transmitter to also transmit anindication that at least one wireless station in the range need not wakeup at the scheduled time to receive buffered data. In one example, thecontroller is structured to cause the transmitter to transmit at leastone low-power association identifier and at least one non-low-powerassociation identifier. In one example, the controller is structured tocause the transmitter to transmit a delivery interval time indicative ofa time between a transmission of first buffered data associated with afirst wireless station and a transmission of second buffered dataassociated with a second wireless station. In one example, thecontroller is structured to cause the transmitter to transmit a skiprate indicative of a wake-up frequency associated with at least one ofthe plurality of wireless stations.

Turning now to the drawings, and as described in detail below, oneexample of the presently disclosed system is realized in a wirelessnetwork communications system, although any suitable communicationsystem may be employed. A block diagram of an exemplary wireless networkcommunications system 100 is illustrated in FIG. 1. The example system100 includes a plurality of wireless stations 102 which wirelesslycommunicate with a plurality of associated access points 104. In oneexample, the access point 104 is an 802.11-type router. Each accesspoint 104 connects one or more wireless stations 102 to one or moreapplication servers 106 via a network 108.

Each wireless station 102 may be any suitable type of wireless device.In an example, the wireless station 102 is a sensor structured to takeone or more types of physical measurements such as temperature, sound,pressure, humidity, light, gas flow, liquid flow, heart rate, etc. Thewireless station 102 may be connected to an AC power source or thewireless station 102 may be battery powered. In an example, a pluralityof battery-powered water-meter readers are placed in a neighborhood toperiodically send water-meter readings to an application server 106 forstorage in a database 110.

If the wireless station 102 is battery powered, then the wirelessstation 102 may periodically enter a low-power (sleep) mode where areceiver or other portions of the wireless station 102 may be powereddown to conserve the battery. In such an instance, the access point 104associated with the wireless station 102 may transmit a beaconindicating when data are buffered for the wireless station 102 asdescribed in detail below.

A diagram of portions of an example access point 104 for delivering datato a wireless station 102 is illustrated in FIG. 2. The access point 104may be implemented in hardware or a combination of hardware and hardwareexecuting software. In one embodiment, at least a portion of thewireless device 102 is embodied in a CPU executing software. Othersuitable hardware includes one or more application-specific integratedcircuits, state machines, field-programmable gate arrays, or digitalsignal processors.

In this example, an association receiver 202 receives a plurality ofassociation requests 204 from a plurality of wireless stations 102. Forexample, 2000 gas meters and 2000 water meters may all attempt to linkto a particular access point 104. An association transmitter 206,operatively coupled to the association receiver 202, then transmits adifferent association identifier in the association response 208 to eachof the plurality of wireless stations 102. In one example, the accesspoint 104 assigns each gas meter and each water meter a unique low-powerID. In addition, when the skip-rate feature is used, the associationrequest 204 optionally includes a requested skip rate, and theassociation transmitter 206 optionally includes the same or a differentvalue for an assigned skip rate and an offset value in the associationresponse 208.

The access point 104 maintains a list 216 of stations to permit it tohold the assigned association identifiers, skip rates, and offsets. Itbuilds this list 216 as it assigns these values in the associationresponses 208.

A data buffer 210 buffers data 212 for a subset of the plurality ofwireless stations 102. For example, all of the water meters may need afirmware update, or a few water meters may need new instructions. Foreach delivery, a skip-rate counter 218 is updated and used inconjunction with the list of stations 216 in a data selector 220 toselect the buffers of those wireless stations 102 that will be lookingat the delivery beacon by computing the relevant modulo function foreach of the plurality of wireless stations 102 and selecting those withmatching offsets. Before transmitting the selected buffered data 212 tothe wireless stations 102, the access point 104 determines if the numberof wireless stations 102 with buffered data 212 is less than a certainthreshold. For example, the access point 104 may determine that morethan or less than 50 meters have buffered data 212 at the access point104.

If the number of selected wireless stations 102 with buffered data 212at the access point 104 is less than the threshold, then a datatransmitter 214, operatively coupled to the skip-rate counter 218 and tothe data selector 220 transmits a list of association identifiers 222indicating that buffered data 212 are held for each wireless station 102identified by the list. In an example, the data transmitter 214explicitly lists the low-power ID for all meters that need an update andindicates that each such wireless station 102 should poll for itsbuffered data. When the number of selected wireless stations 102 withbuffered data 212 at the access point 104 is less than the threshold,the number of bits required to transmit a list of associationidentifiers can be significantly less than the number of bits requiredto transmit a bitmap. For example, the maximum length of a TIM bitmap inthe IEEE 802.11 standard is 2008 bits, whereas transmitting 50sixteen-bit low-power identifiers requires an 800-bit list, and theseidentifiers may represent a population of wireless stations farexceeding 2008.

If the number of selected wireless stations 102 with buffered data 212at the access point 104 is not less than the threshold, then the datatransmitter 214 transmits data indicative of a range of associationidentifiers indicating that buffered data 212 are held for each wirelessstation 102 identified by the range. In an example, the data transmitter214 sends the association identifiers 222 for the bottom and the top ofone or more ranges of meters, not all of which necessarily have buffereddata 212, and indicates that each such wireless station 102 should wakeup at a scheduled time to receive its buffered data 212, if any. Inanother embodiment, the data transmitter 214 sends bitmaps for one ormore ranges of low-power association identifiers indicating whichstations have buffered data. Wireless stations 102 receiving a bitmapand having no data to receive may remain in sleep mode instead of wakingup.

A block diagram of portions of an example wireless station 102 isillustrated in FIG. 3. The wireless station 102 may be implemented inhardware or a combination of hardware and software according to thepossibilities described above with reference to the access point 104.

In this example, the wireless station 102 includes an associationrequester 302 operatively coupled to an association receiver 304. Theassociation requester 302 transmits an association request 204, whichoptionally includes a requested skip rate, to an access point 104, andthe association receiver 304 receives an association identifier, skiprate, and offset values in the association response 208 from the accesspoint 104. Subsequently, when the access point 104 needs to indicatethat it has buffered data 212 for one or more wireless stations 102, theaccess point 104 may transmit an explicit list of associationidentifiers 222 (e.g., when the list is relatively short), or the accesspoint 104 may transmit the boundaries of one or more ranges ofassociation identifiers 222 (e.g., when the list is relatively long). Inone example, when transmitting the boundaries of the one or more rangesof association identifiers, the access point 104 identifies a rangeusing a bottom low-power ID and a value indicating the number ofwireless stations in the bitmap. In another example, the access point104 identifies a range using a bottom and a top low-power ID.

Accordingly, if the association identifier from the association response208 associated with a wireless station 102 is in a range of associationidentifiers 222 indicated by the access point 104, then a short-delayscheduler 306 operatively coupled to the association receiver 304programs a sleep timer 310 operatively coupled to the short-delayscheduler 306, with a wake-up time 308, and the wireless station 102enters a power-save (sleep) mode to conserve battery power until theearliest time that the buffered data 212 for that wireless station 102may start being transmitted. For example, the range may include hundredsof wireless stations 102 each of which has buffered data 212. The sleeptimer 310 then wakes 312 the wireless station 102 up from the power-savemode at or before the scheduled time in order to start monitoring forthe buffered data 212 with its address from the access point 104 via adata receiver 314 operatively coupled to the sleep timer 310.Alternatively, if the association identifier from the associationresponse 208 associated with a wireless station 102 is in a range ofassociation identifiers 222 indicated by the access point 104, and theaccess point 104 does not provide a schedule, then the short-delayscheduler 306, which is operatively coupled to the association receiver304, wakes up the wireless station and transmits a poll message to theaccess point 104 requesting the immediate delivery of buffered data. Ifthe association identifier from the association response 208 associatedwith a wireless station 102 is in an explicit list of associationidentifiers 222 received from the access point 104, then the wirelessstation 102 may poll the access point 104 for the buffered data 212.

Where the association response 208 includes a skip rate and offset, thewireless station 102 may use these values in a skip scheduler 316. Theskip scheduler 316 may monitor the skip-rate counter 218 value receivedfrom the data receiver 314 to determine when the next expected deliveryperiod may occur and inform the data receiver 314 with an appropriateskip indication 318. This permits the data receiver 314 to shut downuntil the next expected delivery period.

A block diagram of an example computing device 400 that may be used totransmit or receive data to or from a wireless station 102 isillustrated in FIG. 4. For example, the computing device 400 may be awireless station 102, an access point 104, or any other suitable device.

The example electrical device 400 includes a main unit 402 which mayinclude, if desired, one or more processors 404 electrically coupled byan address/data bus 406 to one or more memories 408, other computercircuitry 410, and one or more interface circuits 412. The processor 404may be any suitable processor or plurality of processors. For example,the electrical device 400 may include a CPU or a graphics processingunit. The memory 408 may include various types of non-transitory memoryincluding volatile memory or non-volatile memory such as, but notlimited to, distributed memory, read-only memory, random-access memory,etc. The memory 408 typically stores a software program that interactswith the other devices in the system as described herein. This programmay be executed by the processor 404 in any suitable manner. The memory408 may also store digital data indicative of documents, files,programs, web pages, etc., retrieved from a server or loaded via aninput device 414.

The interface circuit 412 may be implemented using any suitableinterface standard, such as an Ethernet interface or a Universal SerialBus interface. One or more input devices 414 may be connected to theinterface circuit 412 for entering data and commands into the main unit402. For example, the input device 414 may be a keyboard, mouse, touchscreen, track pad, isopoint, camera, or a voice-recognition system.

One or more displays, printers, speakers, monitors, televisions,high-definition televisions, or other suitable output devices 416 mayalso be connected to the main unit 402 via the interface circuit 412.The display 416 may be a cathode ray tube, liquid crystal display, orany other type of suitable display. The display 416 generates visualdisplays of data generated during operation of the device 400. Forexample, the display 416 may be used to display web pages or othercontent received from a server. The visual displays may include promptsfor human input, run-time statistics, calculated values, data, etc.

One or more storage devices 418 may also be connected to the main unit402 via the interface circuit 412. For example, a hard drive, CD drive,DVD drive, or other storage device may be connected to the main unit402. The storage devices 418 may store any type of data used by thedevice 400.

The electrical device 400 may also exchange data with other networkdevices 422 via a connection to a network. The network connection may beany type of network connection, such as an Ethernet connection, digitalsubscriber line, telephone line, coaxial cable, etc. Users of the systemmay be required to register with a server. In such an instance, eachuser may choose a user identifier (e.g., e-mail address) and a passwordwhich may be required for the activation of services. The useridentifier and password may be passed across the network usingencryption built into the user's browser. Alternatively, the useridentifier or password may be assigned by the server.

In some embodiments, the device 400 is a wireless device. In such aninstance, the device 400 may include one or more antennas 424 connectedto one or more radio frequency transceivers 426. The transceiver 426 mayinclude one or more receivers and one or more transmitters. For example,the transceiver 426 may be a cellular transceiver. The transceiver 426allows the device 400 to exchange signals, such as voice, video, anddata, with other wireless devices 428, such as a phone, camera, monitor,television, or high-definition television. For example, the device maysend and receive wireless telephone signals, text messages, audiosignals, and video signals.

A flowchart of an example process 500 for delivering data to a wirelessstation 102 is illustrated in FIG. 5. The process 500 may be carried outby one or more suitably programmed controllers or processors executingsoftware (e.g., block 404 of FIG. 4). The process 500 may also beembodied in hardware or a combination of hardware and software accordingto the possibilities described above with reference to the access point104. Although the process 500 is described with reference to theflowchart illustrated in FIG. 5, it will be appreciated that many othermethods of performing the acts associated with process 500 may be used.For example, the order of many of the operations may be changed, andsome of the operations described may be optional.

In general, an access point 104, or any other suitable device or system,receives a plurality of association requests from a plurality ofwireless stations 102 and transmits a different association identifierto each of the plurality of wireless stations 102. Because the wirelessstations 102 are typically battery powered and cycling in and out of asleep mode, the access point 104 buffers data coming from one or moreapplication servers 106 for the wireless stations 102. If the number ofwireless stations 102 with buffered data at the access point 104 is lessthan a threshold, then the access point 104 transmits a list ofassociation identifiers indicating that buffered data are held for eachwireless station 102 identified by the list. If the number of wirelessstations 102 with buffered data at the access point 104 is not less thanthe threshold, then the access point 104 transmits data indicative of arange of association identifiers indicating that buffered data may beheld for each wireless station 102 identified by the range.

More specifically, the example process 500 begins when an access point104, or any other suitable device or system, receives a plurality ofassociation requests from a plurality of wireless stations 102 (block502). For example, 3000 gas meters and 3000 water meters may all attemptto link to a particular access point 104. The access point 104 thentransmits a different association identifier to each of the plurality ofwireless stations 102 (block 504). In an example, the access point 104assigns each gas meter and each water meter a unique low-power ID. As anexample of how the order of some steps may be changed, it will beappreciated that the access point 104 may transmit an associationidentifier to one wireless station 102 (block 504) and then,subsequently, receive an association request from another wirelessstation 102.

The access point 104 buffers data for a subset of the plurality ofwireless stations 102, the subset including a number of wirelessstations 102 (block 506). For example, all of the water meters may needa firmware update or a few water meters may need new instructions.Before transmitting the buffered data to the wireless stations 102, theaccess point 104 determines if the number of wireless stations 102 withbuffered data is less than a certain threshold (block 508). For example,the access point 104 may determine that more than or less than 100meters have buffered data at the access point 104.

If the number of wireless stations 102 with buffered data at the accesspoint 104 is less than the threshold, then the access point 104transmits a list of association identifiers indicating that buffereddata are held for each wireless station 102 identified by the list(block 520). In an example, the access point 104 explicitly lists thelow-power ID of all of the meters that need an update and indicates thateach such wireless station 102 should poll for its buffered data.

If the number of wireless stations 102 with buffered data at the accesspoint 104 is not less than the threshold, then the access point 104transmits data indicative of a range of association identifiersindicating that buffered data may be held for each wireless station 102identified by the range (block 512). In an example, the access point 104sends the association identifiers for the bottom and the top of one ormore ranges of meters, not all of which necessarily have buffered data,and indicates that each such wireless station 102 should wake up at ascheduled time to receive its buffered data, if any.

A flowchart of an example process 600 for delivering data to a wirelessstation 102 is illustrated in FIGS. 6 and 7. The process 600 may becarried out by one or more suitably programmed controllers or processorsexecuting software (e.g., block 404 of FIG. 4). The process 600 may alsobe embodied in hardware or a combination of hardware and softwareaccording to the possibilities described above with reference to theaccess point 104. Although the process 600 is described with referenceto the flowchart illustrated in FIGS. 6 and 7, it will be appreciatedthat many other methods of performing the acts associated with process600 may be used. For example, the order of many of the operations may bechanged, and some of the operations described may be optional.

In general, an access point 104 receives one or more low-powerassociation requests and assigns each wireless station 102 a low-powerassociation identifier (“LP-AID”) and optionally a skip rate and offset.The access point 104 buffers data from an application server 106 for thewireless stations 102. The access point 104 maintains a skip-ratecounter, which increments for each delivery period. For each suchdelivery period, the access point 104 selects those stations 102 whichare expected to be awake by comparing the assigned skip rate and offsetvalues to the skip-rate counter value and performing the modulofunction. The access point 104 uses this list to select those stations102 which have buffered data 212 available for delivery. If the numberof selected wireless stations 102 with buffered data is less than acertain threshold, then the access point 104 transmits an explicit listof low-power association identifiers 222 indicating that each wirelessstation 102 with buffered data should poll for its data. If the numberof wireless stations 102 with buffered data is not less than thethreshold, then the access point 104 transmits one or more ranges oflow-power association identifiers 222 along with associated optional bitmaps or other suitable data indicating that those wireless stations 102should be awake and ready to receive data when transmitted by the accesspoint 104. Alternatively, the access point 104 may transmit a pollingflag indicating that each such wireless station 102 should poll theaccess point 104 for its data. The access point 104 may also transmitscheduling information and transmit the buffered data according to theschedule.

More specifically, the example process 600 begins when an access point104, or any other suitable device or system, receives one or morelow-power association requests, which each contain an optional skip rate(block 602). In an example, multiple gas and water meters attempt tolink to a particular access point 104. The gas meters optionally includein their association request a skip-rate value of 16. The access point104 then assigns each low power wireless station 102 an LP-AID andoptionally a skip rate and an offset value (block 604). The access point104 increments the skip-rate counter for each delivery period (block606). The assigned skip rate may be the value included in the requestfrom the wireless station 102 or modified by the access point 104 (e.g.,for load balancing). When a skip-rate value is assigned, a correspondingoffset value may also be assigned. The offset value permits the accesspoint 104 to distribute traffic over the delivery period of a givencycle. For example, the access point 104 may instruct many wirelessstations 102 to wake up and check for buffered data on every eighthbeacon but assigns different offset values (e.g., 0 to 7), so that thosewake-up periods are spread out over different times.

In addition, the access point 104 may take the skip-rate skippingoutcome into account when making assigning LP-AID values to devices 102.Its goal would be to keep the LP-AID values in a numerically close rangefor a given beacon in the skip cycle to permit the bitmap addressingapproach to be as efficient as possible.

The access point 104 identifies one or more wireless stations 102 withbuffer data from a server 106 where the associated skip rate and offsetvalue synchronize with the skip-rate counter value (block 608). Forexample, if the skip-rate counter value is 67, then for wirelessstations 102 with a skip rate of 8, select those with an offset value of3. Before transmitting buffered data to the wireless stations 102, theaccess point 104 determines if the number of wireless stations 102 withbuffered data is below a certain threshold (block 610). For example, theaccess point 104 may check if the number of wireless stations 102 withbuffered data is less than fifty.

If the number of wireless stations 102 with buffered data at the accesspoint 104 is less than the threshold, then the access point 104transmits an explicit list of low-power association identifiersindicating that each wireless station 102 with buffered data should pollfor its data (block 612). The access point 104 subsequently receives andservices each polling request (block 614). For example, the access point104 may send a firmware upgrade to a small number of gas meters.

If the number of wireless stations 102 with buffered data at the accesspoint 104 is not less than the threshold, then the access point 104determines if the low-power association identifiers of the wirelessstations 102 with buffered data at the access point 104 are numericallyclose or in a small number of numerically close groups (block 702 ofFIG. 7). If the low-power association identifiers are numerically closeor in a small number of numerically close groups, then the access point104 transmits one or more ranges of low-power association identifiersalong with associated bit maps or other suitable data for each rangeindicating that wireless stations 102 with those low-power associationidentifiers should be awake and ready to receive data when transmittedby the access point 104 (block 704). Alternatively, the access point 104transmits a polling flag indicating that each such wireless station 102should poll the access point 104 for its data.

If the low-power association identifiers are not numerically close, thenthe access point 104 transmits one or more ranges of low-powerassociation identifiers indicating wireless stations 102 with low-powerassociation identifiers in those ranges should be awake and ready toreceive data when transmitted by the access point 104 (block 706).Alternatively, the access point 104 transmits a polling flag indicatingthat each such wireless station 102 should poll the access point 104 forits data.

The access point 104 optionally transmits a skip-rate counter andscheduling information (block 708). For example, the access point 104may indicate that it will be transmitting buffered data to wirelessstations 102 in ascending order of low-power association identifier,descending order of low-power association identifier, a deliveryinterval time, or any other suitable scheduling information. In such aninstance, the access point 104 transmits the buffered data to eachwireless station 102 according to the schedule (block 710). For example,in one embodiment the schedule established by the access point 104consists of start times beginning at multiples of the delivery interval.The position of the low-power association ID of a wireless station 102within a list or range determines which multiple of the deliveryinterval corresponds to the potential start time of that wirelessstation 102 in the schedule. In one embodiment, the wireless station 102listed first in the list or range is given a start time corresponding tothe first multiple of the delivery interval. The second wireless station102 in the list or range may be given a start time corresponding to thesecond multiple of the delivery interval, and so on. Typically, theproduct of the delivery interval and the number of wireless stations 102in a list or range should be much less than the beacon interval of theaccess point 104. In some embodiments, the access point 104 provides anew delivery interval each time the access point 104 transmits a list ora range. In other embodiments, the access point 104 notifies wirelessstations 102 during association which delivery interval to use whenscheduling is enabled. In another embodiment, the access point 104 doesnot provide a delivery interval to wireless stations 102, so the accesspoint 104 uses a default delivery interval equal to the beacon intervaldivided by the length of the list or the beacon interval divided by thetotal number of wireless stations 102 in the range transmitted by theaccess point 104. The access point 104 may begin delivering buffereddata to a wireless station 102 any time after the scheduled start timefor the wireless station 102, and the access point 104 is under noobligation to begin transmitting immediately at a scheduled start time,as the schedule is not intended to account for queuing delays or channelaccess delays that might normally occur.

A flowchart of an example process 800 for receiving data at a wirelessstation 102 is illustrated in FIG. 8. The process 800 may be carried outby one or more suitably programmed controllers or processors executingsoftware (e.g., block 404 of FIG. 4). The process 800 may also beembodied in hardware or a combination of hardware and software accordingto the possibilities described above with reference to the access point104. Although the process 800 is described with reference to theflowchart illustrated in FIG. 8, it will be appreciated that many othermethods of performing the acts associated with process 800 may be used.For example, the order of many of the operations may be changed, andsome of the operations described may be optional.

In general, a wireless station 102 requests and receives an associationidentifier from an access point 104. Subsequently, the wireless station102 may look for an indication that the access point 104 has buffereddata for it based on the assigned association identifier. Accordingly,if the association identifier is in a list received from the accesspoint 104, then the wireless station 102 polls the access point 104 forthe buffered data. However, if the association identifier is in a rangeindicated by the access point 104, then the wireless station 102 entersa power-save (sleep) mode to conserve battery power until a scheduledtime when the buffered data for that wireless station 102 are beingtransmitted.

More specifically, the example process 800 begins when a wirelessstation 102, or any other suitable device or system, transmits anassociation request to an access point 104 (block 802). In an example,the wireless station 102 is a battery-powered device that typicallyreceives a low amount of data from the access point 104, such as a gasmeter. The wireless station 102 then receives its association identifierfrom the access point 104 (block 804). Subsequently, when the accesspoint 104 needs to indicate that it has buffered data for one or morewireless stations 102, the access point 104 may transmit an explicitlist of association identifiers (e.g., when the list is relativelyshort), or the access point 104 may transmit the boundaries of one ormore ranges of association identifiers (e.g., when the list isrelatively long).

Accordingly, if the association identifier associated with a wirelessstation 102 is in a list of association identifiers received from theaccess point 104 (block 806), then the wireless station 102 polls theaccess point 104 for the buffered data (block 812). In one embodiment,the wireless station 102 polls the access point 104 using a power-savepoll message, wherein the power-save poll message includes a headerindicating that a header-extension field is included in the message totransport the low-power association identifier from the wireless station102 to the access point 104. The access point 104 uses the informationin the header-extension field to determine a low-power associationidentifier for the polling station. If the association identifierassociated with a wireless station 102 is in a range of associationidentifiers indicated by the access point 104 (block 814), then thewireless station 102 enters a power-save (sleep) mode (block 816) toconserve battery power until the buffered data for that wireless station102 are being transmitted. For example, the range may include hundredsof wireless stations 102 each of which has buffered data. The wirelessstation 102 wakes up from the power-save mode at or before a scheduledtime (block 818) in order to receive the buffered data from the accesspoint 104 (block 820). The wireless station 102 calculates a scheduledwake-up time based upon information provided by the access point 104.For example, in one embodiment the access point 104 provides a deliveryinterval along with the range of association identifiers, and thewireless station 102 calculates its schedule wake-up time by multiplyingthe delivery interval by the number of wireless stations 102 in therange with buffered data plus one. In another embodiment, the wirelessstation 102 determines the delivery interval, and thereby determines itswake up schedule, by dividing the number of wireless stations 102 withbuffered data by the beacon interval. As an example of how the order ofsome steps may be changed, it will be appreciated that the wirelessstation 102 may receive data from the access point 104 using thisscheduled method (block 820) before the wireless station 102 receivesdata from the access point 104 using the polling method (block 812).

A flowchart of another example process 900 for receiving data at awireless station 102 is illustrated in FIG. 9. The process 900 may becarried out by one or more suitably programmed controllers or processorsexecuting software (e.g., block 404 of FIG. 4). The process 900 may alsobe embodied in hardware or a combination of hardware and softwareaccording to the possibilities described above with reference to theaccess point 104. Although the process 900 is described with referenceto the flowchart illustrated in FIG. 9, it will be appreciated that manyother methods of performing the acts associated with process 900 may beused. For example, the order of many of the operations may be changed,and some of the operations described may be optional.

In general, a wireless station 102 requests and receives a low-powerassociation identifier and optionally a skip rate and offset value froman access point 104. The wireless station 102 then enters a power-save(sleep) mode to conserve battery power and periodically wakes up for abeacon with a skip-rate counter 218 from the access point 104 based onthe assigned skip rate and offset value. If the association identifieris in an explicit list received from the access point 104, then thewireless station 102 polls the access point 104 for its buffered data.If the association identifier is in a range of association identifiersreceived from the access point 104, then the wireless station 102determines if a bit map or other indication of what wireless stations102 in the range actually have buffered data was also transmitted by theaccess point 104. If a bit map was transmitted, and it indicates thatthe wireless station 102 has buffered data at the access point 104, thenthe wireless station 102 enters a power-save (sleep) mode until ascheduled time when the wireless station 102 wakes up and receives thebuffered data.

More specifically, the example process 900 begins when a wirelessstation 102, or any other suitable device or system, transmits alow-power association request and optionally a desired skip rate (block902). In response, the wireless station 102 receives a low-powerassociation identifier and optionally a skip rate and offset value fromthe access point 104 (block 904). The skip rate may be a rate requestedby the wireless station 102 or some other suitable rate determined bythe access point 104 (e.g., based on load balancing).

The wireless station 102 then enters a power-save (sleep) mode toconserve battery power (block 906). Subsequently, the wireless station102 wakes up for a beacon from the access point 104 at a time that isoptionally based on the broadcast skip-rate counter 218 and the skiprate and offset value assigned to the wireless station 102 (block 908).At some point, when the wireless station 102 is awake, the access point104 may transmit an explicit list of association identifiers or a rangeof association identifiers to indicate that those wireless stations 102have buffered data at the access point 104.

If the association identifier assigned to the wireless station 102 is inan explicit list of association identifiers received from the accesspoint 104 (block 910), then the wireless station 102 polls the accesspoint 104 for its buffered data (block 912). If the associationidentifier assigned to the wireless station 102 is in a range ofassociation identifiers received from the access point 104 (block 914),then the wireless station 102 determines if a bit map or otherindication of what wireless stations 102 in the range actually havebuffered data was also transmitted by the access point 104 (block 916).If the bit map or other indication was transmitted by the access point104, then the wireless station 102 determines if the access point 104has buffered data for it based on the bit map (block 918). If the accesspoint 104 has buffered data for the wireless station 102, then thewireless station 102 enters a power-save (sleep) mode until a scheduledtime (block 920). At or before the scheduled time, the wireless station102 wakes up and receives the buffered data (block 922).

In summary, persons of ordinary skill in the art will readily appreciatethat methods and apparatus for delivering data to a wireless stationhave been provided. Among other advantages, transmitting a range ofassociation identifiers when the number of wireless stations withbuffered data at the access point is large allows the wake up message tobe short, thereby conserving battery power because the wireless stationsdo not need to stay awake for a long list of explicit associationidentifiers. Conversely, transmitting an explicit list of associationidentifiers when the number of wireless stations with buffered data isshort conserves battery power for wireless stations that may be capturedby a range but do not actually have buffered data at the access point.By using skip rates and offset values, not only does the wirelessstation 102 have an ability to sleep over longer periods of time, butthe access point 104 is able to perform load balancing over itsavailable delivery periods.

In view of the many possible embodiments to which the principles of thepresent discussion may be applied, it should be recognized that theembodiments described herein with respect to the drawing figures aremeant to be illustrative only and should not be taken as limiting thescope of the claims. Therefore, the techniques as described hereincontemplate all such embodiments as may come within the scope of thefollowing claims and equivalents thereof.

We claim:
 1. A method of delivering data to wireless stations, themethod comprising: receiving a plurality of association requests from aplurality of wireless stations; transmitting a different associationidentifier to each of the plurality of wireless stations; buffering datafor a subset of the plurality of wireless stations, the subset includinga number of wireless stations; if the number of wireless stations in thesubset is less than a threshold, then transmitting a list of associationidentifiers indicating that buffered data are held for each wirelessstation identified by the list; and if the number of wireless stationsin the subset is not less than the threshold, then transmitting dataindicative of a range of association identifiers indicating thatbuffered data are held for at least one wireless station identified bythe range.
 2. The method of claim 1 further comprising transmittingpolling information to indicate that each wireless station identified bythe list should poll for the buffered data.
 3. The method of claim 1further comprising transmitting schedule information indicating thateach wireless station identified by the range should wake up at ascheduled wake-up time to begin receiving an associated portion of thebuffered data.
 4. The method of claim 3 wherein the scheduled wake-uptime is responsive to a delivery interval.
 5. The method of claim 1further comprising transmitting a skip rate and an offset valueindicative of a reporting frequency associated with buffered dataavailability and a synchronization point associated with at least one ofthe plurality of wireless stations.
 6. The method of claim 5 furthercomprising transmitting a counter to be used to find a signal associatedwith a wireless station by matching the offset value and the remainderof the counter modulo the skip rate.
 7. The method of claim 5 whereinreporting buffered data availability is limited to wireless stationsthat have a skip rate and an offset value aligned with a current cyclevalue.
 8. The method of claim 5 further comprising: receiving a requestfrom a wireless station to modify the skip rate; modifying the skiprate; modifying the offset value; and transmitting the modified skiprate and the modified offset value to the wireless station.
 9. Themethod of claim 1 wherein if the number of wireless stations is greaterthan the threshold, then also transmitting an indication that at leastone wireless station in the range need not wake up at the scheduled timeto receive buffered data.
 10. The method of claim 1 wherein transmittingthe list of association identifiers includes transmitting at least onelow-power association identifier and at least one non-low-powerassociation identifier.
 11. The method of claim 1 further comprisingtransmitting a delivery interval time indicative of a time between atransmission of first buffered data associated with a first wirelessstation and a transmission of second buffered data associated with asecond wireless station.
 12. The method of claim 1 further comprisingtransmitting a skip rate indicative of a wake-up frequency associatedwith at least one of the plurality of wireless stations.
 13. Anapparatus for delivering data to wireless stations, the apparatuscomprising: a receiver; a transmitter; a memory; and a controlleroperatively coupled to the receiver, to the transmitter, and to thememory, the controller being structured to: cause the receiver toreceive a plurality of association requests from a plurality of wirelessstations; cause the transmitter to transmit a different associationidentifier to each of the plurality of wireless stations; cause thememory to buffer data for a subset of the plurality of wirelessstations, the subset including a number of wireless stations; determineif the number of wireless stations in the subset is less than athreshold, and, if so, then cause the transmitter to transmit a list ofassociation identifiers indicating that buffered data are held for eachwireless station identified by the list; and determine if the number ofwireless stations in the subset is not less than the threshold, and, ifso, then cause the transmitter to transmit data indicative of a range ofassociation identifiers indicating that buffered data are held for atleast one wireless station identified by the range.
 14. A method ofreceiving data at a wireless station, the method comprising:transmitting an association request; receiving an association identifierfrom an access point; if the association identifier is in a list ofassociation identifiers received from the access point, then polling theaccess point for data; and if the association identifier is in a rangeof association identifiers received from the access point, then enteringa power-save mode, waking up from the power-save mode at a scheduledtime, and receiving data from the access point.
 15. The method of claim14 further comprising receiving a delivery interval time indicative of atime between a transmission of first buffered data associated with afirst wireless station and a transmission of second buffered dataassociated with a second wireless station.
 16. The method of claim 15further comprising determining the scheduled time based on the deliveryinterval time and on the association identifier.
 17. The method of claim14 further comprising: receiving a skip rate indicative of a wake-upfrequency from the access point; wherein waking up from the power-savemode includes waking up from the power-save mode at a frequency that isbased on the skip rate.
 18. An apparatus for receiving data, theapparatus comprising: a receiver; a transmitter; and a controlleroperatively coupled to the receiver and to the transmitter, thecontroller being structured to: cause the transmitter to transmit anassociation request; cause the receiver to receive an associationidentifier from an access point; if the association identifier is in alist of association identifiers received from the access point, thencause the apparatus to poll the access point for data; and if theassociation identifier is in a range of association identifiers receivedfrom the access point, then cause the apparatus to enter a power-savemode, cause the apparatus to wake up from the power-save mode at ascheduled time, and cause the receiver to receive the data from theaccess point.
 19. A method of delivering data to wireless stations, themethod comprising: receiving a plurality of association requests from aplurality of wireless stations wherein the plurality of associationrequests include low-power association requests and non-low-powerassociation requests; transmitting a different association identifier toeach of the plurality of wireless stations; transmitting a skip rateindicative of a wake-up frequency associated with at least one of theplurality of wireless stations; transmitting a delivery interval timeindicative of a time between a transmission of first buffered dataassociated with a first wireless station and a transmission of secondbuffered data associated with a second wireless station; buffering datafor a subset of the plurality of wireless stations, the subset includinga number of wireless stations; if the number of wireless stations isless than a threshold, then transmitting a list of associationidentifiers indicating that each wireless station identified by the listis to poll for an associated portion of the buffered data; if the numberof wireless stations is greater than the threshold, then transmittingdata indicative of a range of association identifiers indicating thateach wireless station identified by the range is to wake up at ascheduled time to receive an associated portion of the buffered data;and transmitting an indication that at least one wireless station in therange need not wake up at the scheduled time to receive buffered data.